commonlibsse_ng\re\m/
MouseMoveEvent.rs

1use crate::re::BSFixedString::BSFixedString;
2use crate::re::IDEvent::{IDEvent, IDEventVtbl};
3use crate::re::offsets_rtti::RTTI_MouseMoveEvent;
4use crate::re::offsets_vtable::VTABLE_MouseMoveEvent;
5use crate::rel::ResolvableAddress;
6use crate::rel::id::{DataBaseError, VariantID};
7
8#[repr(C)]
9#[derive(Debug, PartialEq)]
10pub struct MouseMoveEvent {
11    pub __base: IDEvent,  // 0x00
12    pub mouseInputX: i32, // 0x28
13    pub mouseInputY: i32, // 0x2C
14}
15const _: () = assert!(core::mem::size_of::<MouseMoveEvent>() == 0x30);
16
17impl MouseMoveEvent {
18    /// Address & offset of RTTI for `MouseMoveEvent`.
19    pub const RTTI: VariantID = RTTI_MouseMoveEvent;
20
21    /// Address & offset of Virtual function table.
22    pub const VTABLE: [VariantID; 1] = VTABLE_MouseMoveEvent;
23
24    /// # Errors
25    pub fn vtable() -> Result<&'static MouseMoveEventVtbl, DataBaseError> {
26        Self::VTABLE[0].address().map(|vtable| unsafe { vtable.cast().as_ref() })
27    }
28
29    #[inline]
30    pub const fn set_xy(&mut self, x: i32, y: i32) {
31        self.mouseInputX = x;
32        self.mouseInputY = y;
33    }
34
35    #[inline]
36    pub fn set_xy_with_event(&mut self, x: i32, y: i32, user_event: BSFixedString) {
37        self.mouseInputX = x;
38        self.mouseInputY = y;
39        self.__base.userEvent = user_event;
40    }
41}
42
43pub struct MouseMoveEventVtbl {
44    pub __base: IDEventVtbl, // 0x00
45}